package com.example.ibsp_demo.mapper.content;

import com.example.ibsp_demo.pojo.entity.content.Like; // 替换为实际包路径
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface LikeMapper {

    // 根据主键查询
    Like selectByLikeId(Integer likeId);

    // 判断用户是否已点赞某内容
    Like selectByLikerAndCtid(Integer likerId, Integer ctid);

    // 查询内容的所有点赞记录
    List<Like> selectByCtid(Integer ctid);

    // 查询用户点赞的内容列表
    List<Like> selectByLikerId(Integer likerId);

    // 点赞
    int like(Like like);

    // 取消点赞
    int cancelLike(Integer likeId);

    // 按用户和内容取消点赞（更直观）
    int cancelLikeByLikerAndCtid(Integer likerId, Integer ctid);

    // 统计内容的点赞数
    Integer countByCtid(Integer ctid);

    // 新增评论点赞
    int likeComment(Like like);

    // 取消评论点赞
    int cancelLikeByLikerAndComment(Integer likerId, Integer commentId);

    // 查询用户是否已对某评论点赞
    Like selectByLikerAndComment(Integer likerId, Integer commentId);

    // 统计评论的点赞数
    Integer countByCommentId(Integer commentId);

    Like selectByLikerAndContent(@Param("likerId") Integer likerId, @Param("ctid") Integer ctid);

}